Programmable integrated circuits are a type of integrated circuit that can be configured by a user to implement custom logic functions. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. When the design process is complete, the CAD tools generate configuration data. The configuration data is loaded into a programmable integrated circuit to configure the device to perform desired logic functions.
Programmable integrated circuits may include circuitry that can be reconfigured (programmed) during normal operation (e.g., subsequent to initial loading of configuration data and during run-time). Circuitry that can be reconfigured during normal operation may sometimes be referred to herein as dynamically reconfigurable circuitry. However, it can be challenging to accommodate dynamically reconfigurable circuitry in an integrated circuit. For example, dynamically reconfigurable circuitry often communicates with other circuitry that is not reconfigurable during normal operation. The other circuitry may be unable to accommodate new configurations of the dynamically reconfigurable circuitry, because interfaces of the other circuitry are typically static and can only handle communications having predetermined attributes.
In some scenarios, a programmable interface may be provided between dynamically reconfigurable circuitry and other circuitry. To handle new configurations of the dynamically reconfigurable circuitry, the programmable interface must be re-programmed, requiring the circuitry that communicates with the dynamically reconfigurable circuitry to halt all communications (and potentially all operations), which is a time consuming and inefficient solution.